#ifndef _ASR_INST_H
#define _ASR_INST_H
#include<memory>
#include "../reporter/reporter.h"
enum FRAMETYPE
{
	FRAME_FIRST =0,
	FRAME_CONT=1,
	FRAME_LAST=2
};
using namespace std;
using namespace speech;
typedef getResCb cbFunc;
class reporter;
typedef shared_ptr<reporter>                         sReporter;
class asrInst
{
public:
	asrInst(sReporter pReporter)
		:_sReporter(pReporter)
		
	{
		//printf("asr Inst cb Pointer %p \n ", _pObj);
	}
	//virtual std::string createUrl()=0;
	virtual int  init() =0;
	virtual int sendMsg(int iMsgType,void* pMsg, int iLen) =0;
	virtual void close() =0;
	//cbFunc getCbFunc(){return _pCb;}
	//void*  getCbObj() {return _pObj;}
	sReporter  getReporter() {return _sReporter;}
private:
	//cbFunc  _pCb;
	//void*   _pObj;
   sReporter _sReporter;
};
#endif
